package org.mzyyn.qr.service;

import org.mzyyn.qr.dto.assistance.AssistanceSuccessDTO;
import org.mzyyn.qr.dto.assistance.ReceivePrizeDTO;
import org.mzyyn.qr.entity.SharePO;
import com.baomidou.mybatisplus.extension.service.IService;
import org.mzyyn.qr.vo.assistance.AssistanceRecordVO;
import org.mzyyn.qr.vo.assistance.AssistanceVO;
import org.mzyyn.qr.vo.user.ShareCodeVO;

import java.util.List;

/**
 * <p>
 * 分享表 服务类
 * </p>
 *
 * @author lipeng
 * @since 2024-09-04
 */
public interface ShareService extends IService<SharePO> {
    /**
     * 生成分享code.用作在助力时，传输
     * @return
     */
    AssistanceVO generateShareCode();

    /**
     * 获取解析code
     * @param code
     * @return
     */
    ShareCodeVO parseShareCode(String code);

    /**
     * 领取奖品
     * @param receivePrizeDTO
     * @return
     */
    Object receivePrize(ReceivePrizeDTO receivePrizeDTO);

    /**
     * @descrition  实时领取：用户只要助力成功就可领取
     * @param assistanceSuccessDTO  分享参数
     * @param uuid 领取奖励的用户id
     * @param integral 领取奖励的积分
     * @return java.lang.Object
     */
    Object receivePrizeShishi(AssistanceSuccessDTO assistanceSuccessDTO,String uuid,Integer integral);

    /**
     * 获取助力人员
     * @param code
     * @return
     */
    List<AssistanceRecordVO> getAssistanceRecord(String code);

    /**
     * 助力人员总数
     * @param code
     * @return
     */
    Integer getAssistanceCount(String code);
}
